Mysql技术内幕之InnoDB锁的深入讲解
前言自7月份换工作以来,期间一直在学习MySQL的相关知识,听了一些视频课,但是一直好奇那些讲师的知识是从哪里学习的。于是想着从书籍中找答案。毕竟一直看视频也不是办法,不能形成自己的知识。于是想着看书汲取知识,看了几本MySQL的相关书籍,包括《深入浅出Mysql》《高性能Mysql》《Mysql...
2024-01-10JDBC内幕subquery
subquery子查询指一个查询语句嵌套在另一个查询语句内部的查询,在 SELECT 子句中先计算子查询,子查询结果作为外层另一个查询的过滤条件,查询可以基于一个表或者多个表,子查询中常用的操作符有 ANY(SOME)、ALL、IN 和 EXISTS。常见形式如下数据中间件一般处理subquery思路是拆分SQL语句,先查询...
2024-01-10BaikalDB技术实现内幕(一)分布式事务实现
本系列文章主要介绍HTAP数据库BaikalDB的技术实现细节。作者介绍:罗小兵,百度商业平台研发部高级研发工程师,主要负责BaikalDB事务能力,全局二级索引等方向的研发工作。欢迎关注 Star github.com/baidu/BaikalDB一、概述BaikalDB系统简介BaikalDB是一个分布式可扩展的存储系统,兼容MySQL协议,整个系统...
2024-01-10mysql中常见约束自律即自由
1 #常见约束 2 3 /* 4 5 6 含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性 7 8 9 分类:六大约束 10 NOT NULL:非空,用于保证该字段的值不能为空 11 比如姓名、学号等 12 DEFAULT:默认,用于保证该字段有默认值 13 比如性别 14 PRIMARY KEY:主键,用于...
2024-01-10Mysql执行流程
1、逻辑剖析sql 执行流程为:sql语句 -> 查询缓存 -> 解析器 -> 优化器 -> 执行器。1.1 服务器处理客户端请求 客户端程序 connectors >> 连接池 >> SQL接口 >> 解析器 >> 优化器 >> 查询缓存 >> 插件式存储引擎 >> File(文件系统/日志文件)1. 客户端程序 : 包括一些mysql工具如:native 或者语言工具如:php 、go ...
2024-01-10mysql统计
-- 时间转任意格式DATE_FORMAT-- #select DATE_FORMAT(NOW(),"%m-%d-%Y");-- unix_timestamp 时间转时间戳-- select unix_timestamp(now()); -- from_unixtime 时间戳转时间-- SELECT from_unixtime(created_time,"%m-%d-%Y") #按天统计-- SELECT from_unixtime(created_time,"%m-%d-%Y") AS date, C...
2024-01-10Mysql锁总结
数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来 实现这些访问规则的重要数据结构根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类全局锁全局锁就是对整个数据库实例加锁。MySQL ...
2024-01-10MySql条件排序
我有这张桌子(简体):创建表`my_table`( `id` INT NOT NULL AUTO_INCREMENT, `item_name` VARCHAR(45)NULL, `price` DECIMAL(10,0)NULL, 主键(`id`))我需要从表中选择所有项目,并按以下方式排序:1.价格> 0.00首先的项目,按价格ASC排序2.价格= 0.00最后的项目,按ID排序我尝试了这个: 选择 * 来自my...
2024-01-10mysql光标如何使用
说明1、使用光标前,必须声明(定义)。2、声明后,必须打开游标才能使用。3、打开后,根据需要使用光标。4、光标使用后,必须关闭。实例delimiter // -- 声明分隔符create procedure proce_cursor() -- 声明存储结构begindeclare tmp_barcode varchar(50); -- 这个量用来存图书码declare tmp_bookname varchar(50); -- 这...
2024-01-10Mysql中的范式
目录范式定义第一范式第二范式第三范式反范式范式定义范式:Normal Format,是一种离散数学中的知识,是为了解决数据的存储与优化的问题:保存数据的存储之后,凡是能够通过关系寻找出来的数据,坚决不再重复存储,终极目标是为了减少数据的冗余。范式背景:1、是为了解决数据冗余2、...
2024-01-10mysql过滤复制思路详解
目录mysql过滤复制主库上实现从库上实现一些问题mysql过滤复制两种思路:主库的binlog上实现(不推荐,尽量保证主库binlog完整)从库的sql线程上实现所以主从过滤复制尽量不用,要用的也仅仅在从库上使用,因为要尽可能保证binlog的完整性主库上实现在Master 端为保证二进制日志的完整, 不使用...
2024-01-10常用sql
1 查询一段时间前的时间Oracle 数据库-- 查询一个月前的数据SELECT t.CREATE_DATE FROM T_WEB_CORP tWHERE TO_CHAR(t.CREATE_DATE,"YYYY-MM")<=TO_CHAR(ADD_MONTHS(SYSDATE,-1),"YYYY-MM") order by t.CREATE_DATE desc;--查询某一时间前的数据SELECT t.CREATE_DATE FROM T_WEB_CORP tWHERE TO_CHAR(t.CREATE...
2024-01-10mysql中常见约束
1 #常见约束 2 3 /* 4 5 6 含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性 7 8 9 分类:六大约束 10 NOT NULL:非空,用于保证该字段的值不能为空 11 比如姓名、学号等 12 DEFAULT:默认,用于保证该字段有默认值 13 比如性别 14 PRIMARY KEY:主键,用于保证该字段的值具有唯一性...
2024-01-10mysql查看备份文件的方法
说明1、mysqldump导出的SQL脚本是文本文件,/*···*/或--开头的部分表示注释信息。2、使用grep、lesscat等工具查看详细的脚本内容。3、将过滤auth.sql脚本中的数据库操作语句。实例[root@localhost ~]# grep -v "^--" auth.sql | grep -v "^/" | grep -v "^$"CREATE DATABASE /*!32312 IF NOT EXISTS*/ `auth` /*!40100 DEFAULT CHARACT...
2024-01-10Mysql备份还有这么多套路,还不了解下?
逻辑备份和物理备份逻辑备份逻辑备份用于备份数据库的结构(CREAET DATABASE、CREATE TABLE)和数据(INSERT),这种备份类型适合数据量小、跨SQL服务器、需要修改数据等场景。如mysqldump命令就是产生一个逻辑备份工具,使用mysqldump输出的文件包含CREATE TABLE和INSERT语句,能够直接重建表内容和表结构。使...
2024-01-10mysql物理备份如何理解
说明1、物理备份又分为冷备份和热备份两种。2、和逻辑备份相比,它的优点是备份和恢复的速度更快,因为物理备份的原理都是基于文件的cp。实例myisam存储引擎的热备份有很多方法,本质其实就是将要备份的表加读锁,然后再 cp 数据文件到备份目录。使用 mysqlhotcopy 工具// mysqlhotcopy 是 MySQL 的一...
2024-01-10mysql备份脚本
脚本内容:db_user="root"db_passwd="123456"db_name="db_name"time="$(date +"%Y%m%d%H%M%S")"backupdir=/home/wbxt/mysql_backup/usr/local/mysql/bin/mysqldump -u$db_user -p$db_passwd $db_name >>$backupdir/$db_name$time.sqlfind $backupdir -name "$db_name*.sql" -type f...
2024-01-10Mysql备份与恢复(2)逻辑备份
数据库及时备份可以帮助我们在数据库出现异常宕机时及时的使用备份数据进行恢复工作,将因为数据库宕机产生的影响降低到最小。上一篇针对使用xtrabackup工具进行物理备份和数据恢复做了一个详细讲解,本篇主要谈谈如何使用mysql自带的备份工具mysqldump进行逻辑备份和数据恢复。如果还围观看过上...
2024-01-10mysql备份详细解
Mysqldump导出不含创建数据库的语句mysqldump -uroot -proot wms > 1.sql包含创建数据库的语句mysqldump -uroot -proot --databases wms > 1.sql//导出某张表mysqldump -uroot -proot wms wms_goods > 1.sql//导出binlog的位置并注释,且不锁表 single-transaction的作用是开启事务mysqldump -uroot -proot --master-data=2 --s...
2024-01-10mysql定时备份任务
简介在生产环境上,为了避免数据的丢失,通常情况下都会定时的对数据库进行备份。而Linux的crontab指令则可以帮助我们实现对数据库定时进行备份。首先我们来简单了解crontab指令,如果你会了请跳到下一个内容mysql备份。本文章的mysql数据库是安装在docker容器当中,以此为例进行讲解。没有安装到do...
2024-01-10Mysql实现企业级日志管理、备份与恢复的实战教程
背景随着业务的发展,公司业务和规模不断扩大,网站积累了大量的用户信息和数据,对于一家互联网公司来说,用户和业务数据是根基。一旦公司的数据错乱或者丢失,对于互联网公司而言就等于说是灭顶之灾,为防止系统出现操作失误或系统故障导致数据丢失,公司要求加强用户数据的可靠性,...
2024-01-10减去月份和日期的mysql
我需要用mysql减去1个月DATE_ADD (NOW (), - 1 MONTH)零4天,我看到命令完美适用于1个月但1个月零4天,使用31天对于每个月带来30、29、28的每月无效。我无法添加31 + 4,30 + 4,等等回答:使用DATE_SUB [docs] 像:DATE_SUB((DATE_SUB(curdate(), INTERVAL 1 MONTH)), INTERVAL 4 DAY)...
2024-01-10mysql逻辑备份有什么特点
备份是通过查询MySQL服务器获取数据库结构和内容信息。1、备份比物理方法慢,因为服务器必须访问数据库信息并将其转换为逻辑格式。如果输出写入客户端,服务器还必须将其发送到备份程序。2、输出大于物理备份,尤其是文本格式。备份和还原粒度可用于服务器级别(所有数据库)、数据库级别(特...
2024-01-10怎样在mysql中建立表
在mysql中建立表的方法:1、打开mysql;2、执行【use database】语句指定数据库;3、执行【create table 表名】命令创建时数据表。1、进入mysql;(推荐教程:mysql数据库学习教程)2、执行use +(数据库名称) 语句,指定数据库;3、创建数据表create table 表名(列,列);...
2024-01-10【mysql】对于这种需求我该如何建mysql的表?
回答不重复的选择的话可以用distinctselect distinct(民族) from `学生`;建议用 GROUP BY 名族字段 来获取唯一。看来数据库还是要好好学习下。它的映射关系:每张表对应实物中的一个对象,可是对象之间彼此关联,所以映射到表结构中,用字段互相关联,正好印证了关联数据库的理解。...
2024-01-10mysql如何编辑建立表格
mysql编辑建立表格的方法:1、打开Navicat for MySQL,找到要创建数据库中数据表2、接着我们在“表”上面单击鼠标右键,然后点击“新建表”3、然后,右边就会出现设计表的界面,这里可以设置表的字段名,类型,长度以及是否为null等4、设计完数据表之后,点击“保存”按钮就OK了。5、我们在其中输入表...
2024-01-10使mysql中的单个表只读
我如何才能使mysql中的单个表对某个用户只读,而该用户仍具有对同一数据库中其他表的写访问权?附加信息我有权访问服务器表是MyISAM服务器版本为5.0.51a-24 + lenny2谢谢!回答:撤销所有先前的特权,然后授予特定的新特权:REVOKE ALL ON db.table FROM user;REVOKE ALL ON db.othertable FROM user;GRANT SELECT ON db.t...
2024-01-10mysql中的表操作
------------恢复内容开始------------创建数据库 create database 数据库名切换数据库 use 数据库名建表: create table 表名 ( 字段名1,类型,约束 字段名2,类型,约束 ... )约束: 1.主键约束 1)直接在建表时字段类型后加 primary key 2)在表最后加 constrain...
2024-01-10mysql表级锁的两种模式
1、表共享读锁,添加共享读锁的表不会阻塞其他session的阅读请求,但会阻塞其他session的写作请求。CREATE TABLE `user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf...
2024-01-10mysql出现表不存在错误如何解决
电脑重装系统后把原来的mysql data复制进去后大部分表是可以访问的,但是有几个表提示表不存在:error: 1146: Table 'your_table' doesn't exist这种情况就是要把原来mysql安装目录data里的 ibdata1 也要拷贝过去INNODB是MYSQL数据库一种流行的数据库引擎,支持事务(行级),在企业级应用上成为可能。ibdata用来储...
2024-01-10mysql如何编辑建立表格[mysql基础教程]
mysql编辑建立表格的方法:1、打开Navicat for MySQL,找到要创建数据库中数据表2、接着我们在“表”上面单击鼠标右键,然后点击“新建表”3、然后,右边就会出现设计表的界面,这里可以设置表的字段名,类型,长度以及是否为null等4、设计完数据表之后,点击“保存”按钮就OK了。5、我们在其中输入表...
2024-01-10如何在mysql表中进行导入
说明1、导入有两种不同的方法,分别是load data infile...和mysqlimport。2、本质是一样的,区别只是在于一个在MySQL 内部执行,另一个在 MySQL 外部执行。使用“load data infile...”命令,具体语法如下mysql> load data [local]infile 'filename' into table tablename [option]实例// 清空表 test MySQL [t2]> truncate table test;...
2024-01-10Mysql中建的表都存在哪里?[mysql基础教程]
1、临时表MySQL临时表在我们需要保存一些临时数据时是非常有用的。临时表在MySQL 3.23版本中添加。临时表中的结构和数据都存放在内存中,用的时候直接使用。只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。如果你使用了其他MySQL客户端程序连接MySQL数据库服务器来创建临时表...
2024-01-10